# 编译器
CC = gcc
CXX = g++

# 编译选项
CFLAGS = -Wall -O2
CXXFLAGS = -Wall -O2

# 目标库名称
TARGET = fileDec

# 源文件目录
SRC_DIR = ./src

# 头文件目录
INC_DIR = ./src

# 源文件
SRCS = $(wildcard $(SRC_DIR)/*.c)        # C 源文件
SRCS += $(wildcard $(SRC_DIR)/*.cpp)     # C++ 源文件

# 目标文件
OBJS = $(SRCS:.c=.o)                     # C 目标文件
OBJS := $(OBJS:.cpp=.o)                  # C++ 目标文件

# 默认目标
all:$(TARGET)

# 生成可执行程序
$(TARGET): $(OBJS)
	$(CXX) -o $@ $^


# 编译 C 源文件
%.o: %.c
	$(CC) $(CFLAGS) -I$(INC_DIR) -c $< -o $@

# 编译 C++ 源文件
%.o: %.cpp
	$(CXX) $(CXXFLAGS) -I$(INC_DIR) -c $< -o $@

# 清理生成的文件
clean:
	rm -f $(OBJS)  $(TARGET)

# 伪目标
.PHONY: all clean
